package 享元模式;


import java.awt.*;

// 在这个示例中，我们定义了一个Shape接口和一个具体的Circle类来表示享元对象。
// ShapeFactory类负责管理共享的对象池，并通过getCircle方法返回共享的或新创建的圆形对象。
// 在main函数中，我们随机选择不同的颜色，并使用ShapeFactory获取对应的圆形对象，然后调用draw方法绘制它们。
public class FlyweightPatternExample {
    public static void main(String[] args) {
        Color[] colors = {Color.RED, Color.GREEN, Color.BLUE, Color.YELLOW};
 
        for (int i = 0; i < 20; i++) {
            Color randomColor = colors[(int) (Math.random() * colors.length)];
            Shape circle = ShapeFactory.getCircle(randomColor);
            circle.draw((int) (Math.random() * 100), (int) (Math.random() * 100));
        }
    }
}
